﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace ConcordWinManager
{
    public partial class LoginForm : Form
    {
        public bool Success;

        public LoginForm()
        {
            InitializeComponent();
        }

        private void AuthenticationForm_Load(object sender, EventArgs e)
        {                       
            this.Text = string.Format("{0} v{1} .:Авторизация:.", Application.ProductName, Application.ProductVersion);
                        
            tbxLogin.Text = Settings.rememberLogin;
            if (tbxLogin.Text != string.Empty)
            {
                tbxPassword.Select();
            }
            else
            {
                tbxLogin.Select();
            }

            //Success = true;
        }

        private void btnCancel_Click(object sender, EventArgs e)
        {
            this.Success = false;
            this.Close();
        }

        private bool IsFormValid()
        {
            if (tbxLogin.Text.Trim() == string.Empty)
            {
                MessageBox.Show("Введите логин", "Доступ запрещен!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return false;
            }
            if (tbxPassword.Text.Trim() == string.Empty)
            {
                MessageBox.Show("Введите пароль", "Доступ запрещен!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return false;
            }

            return true;
        }

        private void btnEnter_Click(object sender, EventArgs e)
        {
            this.Success = false;

            if (IsFormValid())
            {
                Consultant consultant = new Consultant();

                if (consultant.user.Check(tbxLogin.Text, tbxPassword.Text))
                {
                    if (consultant.user.IsAccountLocked)
                    {
                        MessageBox.Show("Аккаунт заблокирован. Обратитесть к администратору.", "Доступ запрещен!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }

                    this.Success = true;

                    //СЮДА ВКОДИТЬ ВЫЕМКУ ИНФЫ КОНСУЛЬТАНТА 

                    if (consultant.user.id_consultant != 0)
                    {
                        Tools.RunWithProgressIndicator(this, delegate
                        {
                            Settings.consultant.SelectById(consultant.user.id_consultant);
                            Settings.consultant.user.SelectByConsultantId(consultant.id_consultant);
                        });
                    }

                    Settings.rememberLogin = tbxLogin.Text;
                    this.Close();
                }
                else
                {
                    MessageBox.Show("Неправильные логин или пароль.", "Доступ запрещен!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }

    }
}
